<?php

class aanmeldenritform extends formEngine {

    protected $formName = 'aanmeldenritform';
    protected $resultAction = 'closeFormWindow';
    protected $resultPage = 'rittenoverzicht';
    protected $resultApplication = 'ritten';

    public function load($page) {

        $cssClass = 'aanmeldenritform';

	$dagen = array();
        $maanden = array();
        $jaren = array();
        $uren = array();
        $minuten = array();

        for ($i = 1; $i <= 31; $i++) {
            $dagen[$i] = $i;
        }

        for ($i = 1; $i <= 12; $i++) {
            $maanden[$i] = $i;
        }

        for ($i = 2013; $i <= 2014; $i++) {
            $jaren[$i] = $i;
        }
        
        for ($i = 1; $i <= 23; $i++) {
            
            if($i < 10){
                $min = '0'.$i;
            } else {
                $min = $i;
            }
            
            $uren[$i] = $min;
        }
        for ($i = 0; $i <= 59; $i++) {
            
            if($i < 10){
                $min = '0'.$i;
            } else {
                $min = $i;
            }
            
            $minuten[$i] = $min;
        }
        

        $this->addComponent('textfield', array('label' => 'Van plaats', 'name' => 'van', 'cssClass' => $cssClass));
        $this->addComponent('textfield', array('label' => 'Van straat', 'name' => 'vanstraat', 'cssClass' => $cssClass));
        $this->addComponent('textfield', array('label' => 'Naar plaats', 'name' => 'naar', 'cssClass' => $cssClass));
        $this->addComponent('textfield', array('label' => 'Naar straat', 'name' => 'naarstraat', 'cssClass' => $cssClass));
        $this->addComponent('selectfield', array('label' => 'Dag',  'name' => 'dag', 'cssClass' => $cssClass . ' .datum', 'value' => $dagen, 'emptyOption' => true));
        $this->addComponent('selectfield', array('label' => 'Maand', 'name' => 'maand', 'cssClass' => $cssClass, 'value' => $maanden, 'emptyOption' => true));
        $this->addComponent('selectfield', array('label' => 'Jaar', 'name' => 'jaar', 'cssClass' => $cssClass, 'value' => $jaren, 'emptyOption' => true));
        $this->addComponent('selectfield', array('label' => 'Tijd uren', 'name' => 'uur', 'cssClass' => $cssClass, 'value' => $uren, 'emptyOption' => true));
        $this->addComponent('selectfield', array('label' => 'Tijd minuten', 'name' => 'minuten', 'cssClass' => $cssClass, 'value' => $minuten, 'emptyOption' => true));
	$this->addComponent('textfield', array('label' => 'Aantal deelnemers', 'name' => 'aantal', 'cssClass' => $cssClass));
        $this->addComponent('textfield', array('label' => 'Prijs per deelnemer', 'name' => 'prijs', 'cssClass' => $cssClass));


        $this->addComponent('button', array('id' => 'testButton', 'value' => 'Rit aanmelden', 'name' => 'login', 'cssClass' => 'loginButton'));

        parent::load($page);
    }

    public function validate(&$values) {

        if(!isset($values['van']) || $values['van'] == '') {
                $error .= "Geen geldige 'van' waarde ingevoerd \n";
        }

        if(!isset($values['naar']) || $values['naar'] == '') {
                $error .= "Geen geldige 'naar' waarde ingevoerd \n";
        }

        if(!isset($values['dag']) || $values['dag'] == -1) {
                $error .= "Geen geldige 'dag' ingevoerd \n";
        }

        if(!isset($values['maand']) || $values['maand'] == -1) {
                $error .= "Geen geldige 'maand' ingevoerd \n";
        }

        if(!isset($values['jaar']) || $values['jaar'] == -1) {
                $error .= "Geen geldige 'jaar' ingevoerd \n";
        }
        
        if(!isset($values['uur']) || $values['uur'] == -1) {
                $error .= "Geen geldige tijdstip ingevoerd (uren) \n";
        }

        if(!isset($values['minuten']) || $values['minuten'] == -1) {
                $error .= "Geen geldig tijdstip ingevoerd (minuten) \n";
        }

        if(!isset($values['prijs']) || $values['prijs'] == '') {
                $error .= "Geen geldige 'prijs' ingevoerd \n";
        }

        if($error != ''){
                return $error;
        }

        // Call uitvoeren om te zien of rit mogelijk is
        $restService = restService::instantiate();
        $coordinaten = $restService->getCoordinaten($values['van'], $values['naar']);

        if($coordinaten->status != "OK") {
            return 'Één of beide Locaties kunnen niet worden gevonden';
        }

        $values['start_locatie'] = $coordinaten->start;
        $values['eind_locatie'] = $coordinaten->eind;
        
        return true;

    }

    public function save(&$values) {

        $datum = $values['jaar'].'-'.$values['maand'].'-'.$values['dag'].' '.$values['uur'].':'.$values['minuten'].':00';

        $query = "insert into `itract`.`ritten`
            (`ID`,
            `Klant_ID`,
            `Datum`,
            `Start_Woonplaats`,
            `Start_Straat`,
            `Start_Locatie`,
            `Eind_Woonplaats`,
            `Eind_Straat`,
            `Eind_Locatie`,
            `Max_Afnemers`,
            `Prijs`)
                values ('ID',
            '".$_SESSION['klantid']."',
            '".$datum."',
            '".$values['van']."',
            '".$values['vanstraat']."',
            '".$values['start_locatie']."',
            '".$values['naar']."',
            '".$values['naarstraat']."',
            '".$values['eind_locatie']."',
            '".$values['aantal']."',
            '".$values['prijs']."');";

        $result = mysql_query($query);

        if($result) {
            return true;
        } else {
            return false;
        }
        
    }

}

?>
